package com.dyzx.hbb.modules.fcxs.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dyzx.hbb.common.config.MyLambdaQueryWrapper;
import com.dyzx.hbb.modules.fcxs.entity.FcxsClue;
import com.dyzx.hbb.modules.fcxs.entity.FcxsOrder;
import com.dyzx.hbb.modules.fcxs.service.FcxsClueService;
import com.dyzx.hbb.modules.fcxs.mapper.FcxsClueMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

/**
 * 线索服务实现类
 * 
 * 功能说明：实现线索表的业务逻辑操作，包括线索的查询、添加、修改、删除等功能
 * 
 * @author 开发团队
 * @version 1.0.0
 * @since 2025-05-17
 */
@Service
public class FcxsClueServiceImpl extends ServiceImpl<FcxsClueMapper, FcxsClue>
    implements FcxsClueService{

    /**
     * 根据线索ID或线索编号查询线索信息
     * 
     * @param clueId 线索ID
     * @param clueNo 线索编号
     * @return FcxsClue 线索实体对象，若不存在则返回null；若存在多个匹配记录则返回其中一个
     */
    @Override
    public FcxsClue fondByClueIdOrClueNo(Long clueId, String clueNo) {
        // 创建查询条件包装器
        MyLambdaQueryWrapper<FcxsClue> query = new MyLambdaQueryWrapper<>();
        // 构建条件：如果提供了线索ID，则根据ID查询；如果提供了线索编号，则根据编号查询
        query.eq(clueId != null,FcxsClue::getId, clueId)
                .or().eq(StringUtils.isNotBlank(clueNo),FcxsClue::getClueNo, clueNo);
        // 调用MyBatis-Plus的getOne方法获取匹配的单条记录
        return this.getOne(query);
    }

    /**
     * 根据线索ID查询线索信息
     * 
     * @param clueId 线索ID
     * @return FcxsClue 线索实体对象，若不存在则返回null
     */
    @Override
    public FcxsClue findByClueId(Long clueId) {
        // 直接调用MyBatis-Plus的getById方法根据主键查询线索信息
        return this.getById(clueId);
    }
}




